package main

import (
	"fmt"
	"inkjet168x-sdk-go/sdk"
)

func main() {
	fmt.Println("=== 文本协议SDK API演示 ===\n")
	
	// 创建文本SDK实例
	textSDK := sdk.NewTextSDK()
	
	// 创建protocol对象
	protocol := textSDK.NewTextProtocol()
	
	fmt.Println("可用的Set方法:")
	fmt.Println("1. SetText(text string)           - 设置文本内容")
	fmt.Println("2. SetPosition(x, y uint32)       - 设置位置坐标")
	fmt.Println("3. SetFontName(fontName string)   - 设置字体名称")
	fmt.Println("4. SetFontSize(fontSize uint32)   - 设置字号 (12-1000)")
	fmt.Println("5. SetFontWidth(fontWidth uint32) - 设置字宽 (12-1000)")
	fmt.Println("6. SetCharSpacing(spacing uint32) - 设置字间隔 (0-999999)")
	fmt.Println("7. SetRotation(rotation uint32)   - 设置旋转角度 (0-90)")
	fmt.Println("8. SetBold(bold bool)             - 设置加粗")
	fmt.Println("9. SetItalic(italic bool)         - 设置斜体")
	fmt.Println("10. SetStyle(style uint32)        - 设置样式 (0=实体/1=圆点阵/2=方点阵/3=删除体)")
	fmt.Println("11. SetSequence(seq uint16)       - 设置序列号")
	
	fmt.Println("\n=== 使用示例 ===")
	
	// 演示所有方法的使用
	protocol.SetText("致开123")
	protocol.SetPosition(0, 0)
	protocol.SetFontName("simsun.tt")
	protocol.SetFontSize(150)
	protocol.SetFontWidth(150)
	protocol.SetCharSpacing(1)
	protocol.SetRotation(0)
	protocol.SetBold(false)
	protocol.SetItalic(false)
	protocol.SetStyle(0) // 实体样式
	protocol.SetSequence(0)
	
	// 生成协议数据包
	data, err := textSDK.CreateTextProtocol(protocol)
	if err != nil {
		fmt.Printf("错误: %v\n", err)
		return
	}
	
	fmt.Printf("生成的协议数据包 (%d 字节):\n", len(data))
	for i, b := range data {
		if i > 0 && i%16 == 0 {
			fmt.Println()
		}
		fmt.Printf("%02X ", b)
	}
	fmt.Println()
	
	fmt.Println("\n=== 简化使用方式 ===")
	fmt.Println("// 创建SDK")
	fmt.Println("textSDK := sdk.NewTextSDK()")
	fmt.Println("")
	fmt.Println("// 创建并配置protocol")
	fmt.Println("protocol := textSDK.NewTextProtocol()")
	fmt.Println("protocol.SetText(\"你的文本\")")
	fmt.Println("protocol.SetPosition(100, 200)")
	fmt.Println("protocol.SetFontSize(150)")
	fmt.Println("protocol.SetBold(true)")
	fmt.Println("")
	fmt.Println("// 生成协议数据包")
	fmt.Println("data, err := textSDK.CreateTextProtocol(protocol)")
}